A GNSS receiver determines its position using satellites. The GNSS receiver processes a received signal to determine presence of signals from various satellites. If presence of a signal from a satellite is detected, then the satellite is determined as a “visible” satellite. After the visible satellites are determined, the GNSS receiver further processes the signals from the visible satellites to determine its position. Time required by the GNSS receiver to determine its position is dependent on time consumed by the GNSS receiver in performing the search for the visible satellites. Hence, it is desired to minimize time consumed by the GNSS receiver in performing the search for the visible satellites and in giving a position fix.
An exemplary GNSS receiver that performs the search is illustrated in FIG. 1 (Prior Art). The received signal is received by an antenna 105 and processed using a circuit 110. The circuit 110 can include a radio frequency processing circuit that down-converts the received signal to intermediate frequency for further processing. An analog-to-digital converter (ADC) 115 converts output of the circuit 110 into digital samples. A filter and decimation block 120 filters the digital samples to reduce sampling rate and to bring the received signal to baseband. The digital samples are then stored in a buffer 125. Correlators 130A to 130N access the digital samples from the buffer 125 and store correlation results in a corresponding section in a memory 145. For example, a correlator 130A stores correlation result in a section 135A of the memory 145. Each correlator and the corresponding section in the memory 145 correspond to a channel. Each channel is capable of searching for a signal from a particular satellite. The correlation results are indicative of visible satellites. Once a visible satellite is detected, a tracking channel 140 tracks the visible satellite to receive data and to track the position. However, searches corresponding to various channels are performed in parallel using several correlators leading to high cost. Further, each channel is allocated a section, in the memory 145, required for worst case search leading to inefficiency. Moreover, searches corresponding to various channels may require different memory sizes based on mode of operation of the GNSS receiver and hence allocation of the section based on worst case search requirement leads to wastage of the memory 145.